/* 
 * File:   module.h
 * Author: zhouzhao
 *
 * Created on December 28, 2011, 8:03 PM
 */

#ifndef MODULE_H
#define	MODULE_H

#include <string>
#include <vector>
#include <map>

#include "node.h"

using namespace std;

class module {
public:
    module();
    module(string name);
    module(const module& orig);
    virtual ~module();
    
    string name;
    map<string, vector<Node*> > inputMap;
    map<string, vector<Node*> > outputMap;
    map<string, vector<Node*> > wireMap;
    
    Node** nAll; //pointer to reference all nodes in one module
    Node** nInput;
    Node** nOutput;
    
    int allNum;
    int inputNum;
    int outputNum;
    
    map<Node*, Node*> ffMap;
    vector<Node*> nFloat;
    
private:

};

#endif	/* MODULE_H */

